As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more information handling systems, data storage systems, and networking systems.
In a streaming or layering environment where instead of a local hard drive clients use virtual disks backed by data files stored on a remote server, network performance may be a bottleneck for the information handling system. In these environments, the paging and non-memory-cached disk input/output (I/O) may eventually go over the network and thus may cause significant performance degradation of the information handling system and may lead to network congestion. For example, a client information handling system may run applications that produce intensive disk I/O or use a significant amount of virtual memory which may cause network congestion.
To overcome certain network traffic issues or network congestion, existing solutions may utilize a local cache on the device, either RAM-based or disk-based. The cache is block-based, that is, it is based on the physical block address and is not file-system based. One advantage of block-based caches is that they can be implemented via a simple storage filter driver that checks and handles all disk I/O operations. These I/O operations refer to a disk block address and have no mapping to a file. However, block-based cache has to be consistent with the associated virtual disk. If the virtual disk is updated, then all local caches on all the clients have to be deleted. All the user data, applications settings, user-specific configurations, etc. will be lost.